#pragma once
#include "SingletonBase.h"
#include "Config.h"

#define DEFINE_STRUCT
#include "PropertiesHeader.h"
#undef DEFINE_STRUCT

#define CONFIG_LOAD_FUNC
#include "PropertiesHeader.h"
#undef CONFIG_LOAD_FUNC

#define CONFIG_SAVE_FUNC
#include "PropertiesHeader.h"
#undef CONFIG_SAVE_FUNC

class Config;


class SettingManager : public SingletonBase<SettingManager>
{
public:
	SettingManager(void);
	~SettingManager(void);
	bool IsAutoRun() const;
	void SetAutoRun(bool val) ;

	int GetLogLevel();

	static void GetCurrDirectory( std::wstring& directory );

	const Properties& GetConstProperties() const { return mProperties; }
	Properties& GetModifyProperties() { return mProperties; }

	void ReloadProperties();
	void SaveProperties();

private:
	Properties mProperties;
	

	
};
